IAMロールのセッション期間が1時間から12時間に延長可能になりました
はじめに
AWSチームのすずきです。
IAMロールのアップデートにより、CLI/API セッションの有効時間を、従来の1時間から最大12時間まで延長する設定が可能になりました。
今回、有効時間としてデフォルトの1時間と12時間に延長した2つのロールを用意し、 AWSコンソールのスイッチロール動作を確認する機会がありましたので、紹介させて頂きます。
Enable Federated API Access to your AWS Resources for up to 12 hours Using IAM Roles
2019年現在、マネジメントコンソールで1時間以上のセッション設定で利用するためには、AssumeRole を利用した コンソールURLの発行が必要となりました。当ブログで紹介したコンソール上のスイッチ操作ではセッションは1時間のままとなるのでご注意ください。
方法 認証情報の有効期間 (最小 / 最大 / デフォルト) AWS マネジメントコンソール 1 時間 / 1 時間 / 1 時間 AssumeRole を使用して構築されたコンソール URL 15 分 / 12 時間 / 1 時間
設定
IAMダッシュボードの「ロール」設定として、CLI/API セッション期間の指定が可能になりました。
期間として、1時間(3600秒)から、最大では12時間(43200秒)までの指定可能です。
確認手順
- 同時刻に2つの異なるブラウザ(Firefox/Safari)を利用してAWSコンソールにIAMログイン
- CLI/API セッション期間 1時間と、12時間のロールにスイッチしました。
CloudTrailログ(抜粋)
- 1時間設定ロール(Firefox)
"eventTime": "2018-03-29T12:55:07Z", "eventSource": "signin.amazonaws.com", "eventName": "SwitchRole", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:59.0) Gecko/20100101 Firefox/59.0", "additionalEventData": { "RedirectTo": "https://console.aws.amazon.com/console/home", "SwitchTo": "arn:aws:iam::************:role/test-1h" }
- 12時間設定ロール(Safari)
"eventTime": "2018-03-29T12:55:20Z", "eventSource": "signin.amazonaws.com", "eventName": "SwitchRole", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/604.5.6 (KHTML, like Gecko) Version/11.0.3 Safari/604.5.6", "additionalEventData": { "RedirectTo": "https://console.aws.amazon.com/console/home", "SwitchTo": "arn:aws:iam::************:role/test-12h" }
- 1時間後、セッション期間「1時間」のロールを利用したAWSコンソール(Firefox)のみ「再ロード」のダイアログが表示されました。
まとめ
AWSコンソールを利用してスイッチロールの有効期間が過ぎた場合、作業中の内容については失われてしまう場合がありました。
スイッチロールした状態で長時間AWSコンソール操作を実施する必要があるケース、
- S3の多数のファイル転送
- Lambda関数のインラインエディタ編集
- サポートケースの編集
- Cloudwatchグラフの継続確認
の際には、作業環境に合わせた適切なCLI/APIセッション期間の設定をお試しください。